
# -*- coding: utf-8 -*-

import os
os.environ['PATH'] ="C:/Oracle/Client/bin" + os.pathsep +os.environ['PATH'] 
import cx_Oracle
class ValidationLocale(object):
    pass

class DictionnaireSQL(object):
    
       erreurSqlMsg={
           0:'Oups!..Erreur indéterminée',
           # "select * from pme"
           942:'Table ou vue inexistante',
           #"select 2 / 0 from dual"
           1476:'le diviseur est égal à zéro',
           # "select N from emp"
           904:'identificateur non valide',
           # "slect Nome from emp"
           # "--rem"
           900:'instruction SQL non valide', 
           #"select nome rom emp"
           923:'mot-clé FROM abscent à l\'emplacement prévu',
           # "select Nom from emp where" 
           936:'expression absente',
           # "select Nome from emp where nome='roy' orde"
           933:'la commande SQL ne se termine pas correctement',
           #"select Nome from emp where nome='e' order"
           924:'mot-clé BY absent',
           # "select Nome from emp where nome='e' by nome having"
           921:'fin inattendue d\'une commande SQL',
           # "Alter emp"
           940: 'commande ALTER non valide',
           # "create table"
           901: 'commande CREATE non valide',
           #"insert"
           925: 'mot-clé INTO absent',
           # "update emp
           971: 'mot-clé SET absent',
           #"alter table emp delete"
           1735: 'option ALTER TABLE non valide',
           # ""
           24373: 'longueur indiquée non valide pour l\'instruction',
           # "set"
           922: 'option erronée ou absente',
           955: 'cette table existe deja'}

           # Erreur de la base de données elle même
       erreurDBMsg={#con=cx_Oracle.Connection('dalek/*@titan')
                         0:'Oups!..Erreur indéterminée',
                         1005:'aucun mot de passe indiqué',
                         1017:'Nom d\'utilisateur ou mot de passe invalid',
                         28000:'Le compte est verouillé',
                         28009:'La connection en tant que SYS devrait être SYSDBA ou SYSOPER',
                         12154: 'TNS : l\'identificateur de connexion indiqué n\'a pas pu être résolu'}

" A supprimer"
"""" 
       sqlTypeDic={'Texte':'VARCHAR2', # afficher l'option de taille
                   'Entier':'NUMBER', # afficher l'option de taille
                   'Réel':'NUMBER', # avec précision afficher l'option de précision 
                   'Date':'DATE',
                   'Caractère':'CHAR'}
""""

       sqlCursorDescription = {
            'name':0, 'type':1, 'display_size':2, 
            'internal_size':3, 'precision':4, 'scale':5, 'null_ok':6}
        
"""
Modifier: Le cidionnaire cxType est contient une liste comme valeur
Ceci pour regrouper les constante dans une meme entité
"""        
       cxType={
            cx_Oracle.STRING:['TEXTE','VARCHAR2'],
            cx_Oracle.NUMBER:['ENTIER','NUMBER'],
            cx_Oracle.DATETIME:['DATE','DATE'],
            cx_Oracle.FIXED_CHAR:['CARACTÈRE','CHAR'],
            }
        
        